home *** CD-ROM | disk | FTP | other *** search
- {
- > I'm trying to do a copper bars effect in Turbo Pascal. At
- > the moment, I have three different coloured _LINES_ which go
- > up and down etc. etc.
-
- Here is a copper-car-routine which I found in an old issue of an german
- computer-magazine. Maybe it helps you..:
- }
- {$A+,B-,D-,E-,F-,G+,I-,L-,N-,O-,R-,S-,V-,X-} { For TP 6.0 }
- Program RedBar;
- Uses
- Crt;
-
- Var
- C : Byte;
- C2,
- C3,
- C4 : Word;
- SinTab : Array [0..127] of Word;
- HeadPtr : Word Absolute $0040:$001A;
- TailPtr : Word Absolute $0040:$001C;
- Zaehler : Word;
-
- Begin
- For C := 0 to 127 do
- SinTab[C] := Trunc((Sin((2 * Pi / 128) * C) + 1) * 135);
-
- C3 := 0;
-
- Repeat
- Inline($FA); {CLI}
-
- Repeat Until (Port[$3DA] and 8) > 0;
- Repeat Until (Port[$3DA] and 8) = 0;
-
- For C4 := 0 to SinTab[C3 and 127] do
- Begin
- Repeat Until (Port[$3DA] and 1) = 0;
- Repeat Until (Port[$3DA] and 1) > 0;
- End;
-
- For C := 0 to 63 do
- Begin
- Repeat Until (Port[$3DA] and 1) > 0;
- Port[$3C8] := 0;
- Port[$3C9] := 0;
- Port[$3C9] := C;
- Port[$3C9] := 63-C;
- Repeat Until (Port[$3DA] and 1) = 0;
- End;
-
- For C := 63 downTo 0 do
- Begin
- Repeat Until (Port[$3DA] and 1) > 0;
- Port[$3C8] := 0;
- Port[$3C9] := 0;
- Port[$3C9] := C;
- Port[$3C9] := 63-C;
- Repeat Until (Port[$3DA] and 1) = 0;
- End;
-
- Inc(C3);
- Inline($FB); {STI}
-
- Until HeadPtr <> TailPtr;
-
- HeadPtr := TailPtr;
- Port[$3C8] := 0;
- Port[$3C9] := 0;
- Port[$3C9] := 0;
- Port[$3C9] := 0;
- End.